home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / utils / console / svgatext.3 / svgatext / SVGATextMode-1.3 / HISTORY < prev    next >
Encoding:
Text File  |  1996-04-21  |  33.1 KB  |  616 lines

  1. 21 APR 1996 - version 1.3
  2.  
  3. [This will be mainly a few bugfixes and cleanups on version 1.2]
  4. - (1.2.1) fixed bug in validate.c, ATI MACH32 checking of number of clocks
  5.   (typo of " 2" instead of "32")
  6. - filename checking in cfgfile.y improved (setting the fontprog to "setfont
  7.   -u something" is now possible). This was needed to allow setfont to set a 
  8.   unicode map each time it is called (otherwise loading a raw font file erased
  9.   the original unicode mapping)
  10. - added sync_on_green option for TI RAMDAC's (will somebody test this?)
  11. - (1.1.2) some Redhat 3.0.3 (contrib) patches included (Makefile, TextConfig)
  12. - added "echo" keyword to TextConfig syntax.
  13. - some "Bool" type conflicts removed.
  14. - VGA_CAN_DO_64KB as an option to allow 32k char modes (default was 16k)
  15. - some contrib directories updated (setfont,...)
  16. - kernels 1.3.78 and up have MAX_NR_CONSOLES defined _outside_ the __KERNEL__
  17.   defines, so __KERNEL__ must no longer be defined in ttyresize.c. It causes
  18.   conflicts with ___strtok. (thanks to Noel Cragg)
  19. - 16 color textmode option added (default is 8-color with blinking)
  20. - (1.2.3) missing "break" in validation caused error about S3 clocks when
  21.   using std. VGA chipset.
  22. - some more standard VGA modes added, some doubles removed.
  23. - slight re-ordering of TextConfig file to give it a little more structure.
  24.   Some contributer's names were omitted. Sorry about that guys, but is 
  25.   was becoming a mess. You're in the CREDITS file.
  26. - (1.2.4) some man-file updates, cleanups,...
  27. - all clockchips (except Cirrus) will now prefer using the standard VGA
  28.   (hardwired) clocks of 25 and 28 MHz instead of always programming a new
  29.   one.
  30. - CLOCKCHIP_X option now works for ET4000 + ICD2061a, too.
  31. - included MSWindows grabmode executable.
  32.  
  33.  
  34. 7 MAR 1996 - Version 1.2
  35.  
  36. - (1.1.0) added some more 56 kHz modes (20-pixel fonts) to TextConfig file
  37. - added contrib/setcolor: a kernel palette changer for 1.3.x kernels,
  38.   contributed by Bob McCracken.
  39. - (1.1.1) mode grabber now stores messages in mode struct instead of printing
  40.   them. This allows other programs to use the mode grabber without being
  41.   bothered by unwanted output (e.g. scanmodes.exe for DOS).
  42. - finally: the grabmode/clockprobe glitches are explained (but not solved yet).
  43. - grabmode enhanced again to accomodate Interlaced mode detection.
  44.   Also restructured modedata.c code.
  45. - Option "Number_Nine" removed. Was never used anyway...
  46. - ! (1.1.2) BIG change in config file parser: now uses lex/yacc
  47.   ! Most files have been changed for this. Many other files were obsoleted.
  48.   ! !!! NOTE syntax change for font definitions !!!
  49. - removed automatic "\n" printing in PDEBUG, PERROR,... 
  50.  
  51. most "bugs" removed below were not in 1.1, they resulted from the massive
  52. changes caused by the lex/yacc thing.
  53.  
  54. - (1.1.3) further integration of lex/yacc stuff.
  55. - ALL clock frequencies are now in kHz (integers). This could cause lots of 
  56.   nicely hidden bugs!
  57. - (1.1.4) first shot with all-new-and-improved code seems to work. Speed
  58.   is about three times as fast! more major fun-stopper bugs removed.
  59. - (1.1.5) further bugfixes
  60. - one more "bugfix" for a kernel mis-feature: VT_RESIZEX doesn't know about 
  61.   doublescan modes, and thus we have to lie to it about the number of video lines...
  62.   (this _was_ in 1.1)
  63. - option "NoUnderline" has gone. Underlining is default "off" (i.e. set to
  64.   line 31) until defined otherwise using "UnderLine xxx".
  65. - included screen-capture program contrib/consoletools/dscrn.c and Borland
  66.   C's gettext/puttext clones contrib/consoletools/gettext_settext_demo.c
  67.   written by Bob McCracken.
  68. - (1.1.6) grabmode's probe now does less loops. Precision is still good enough,
  69.   speed is better.
  70. - 9-pixel wide fonts allow upto 9/8 DACSPEED clock (see doc/PROBLEMS for reason)
  71. - (1.1.7) further porting of misc utils to new data structures.
  72. - So I discovered "lint". So what? All boolean values are now type "bool" instead
  73.   of "int".
  74. - (1.1.8) get/setVGAreg reworked a bit.
  75. - more cleanups. The more I clean up, the more mess I turn up... Go figure...
  76. - remains of configfile.c split into file_ops.c and string_ops.c
  77. - ClockProg updated to use new parser
  78. - Due to all the changes, a bug in grabmode dissapeared as well (sync polarity 
  79.   was reported wrongly)
  80. - (1.1.9) clock validation fixed (was broken from 1.1.4)
  81. - (1.1.10) fixed bug in clockchip clock validation
  82. - flex "%option" lines removed (they needed v2.5 of flex, which not all people
  83.   have)
  84. - clockchip limit checking moved to validate.c (at least it doesn't bail out
  85.   in the middle of VGA programming anymore, which was pretty stupid)
  86. - more config file sanity checks added, and moved to validate.c
  87. - added dump_cfgdata.c
  88. - ET4000 clock selection modified a little (clears CLKDIV4 in addition to
  89.   CLKDIV2 just to make sure).
  90. - ET4000 + ICS5341: safer clock #2 selection to avoid wrong clock setting
  91.   (prior versions needed "hibit_low" option to avoid setting 1/2 clock)
  92. - preliminary support for ET4000 + ICD2061 (Diamond Stealth 32)
  93. - (1.1.11) bug fixed in new clockchip code ("break" statements added)
  94. - fixed several bugs in ET4000 ICD2061 clock code.
  95. - ClockProg/STM now correctly passes clock index to clock program.
  96. - ClockProg "index" parameter no longer required (but still allowed).
  97. - (1.1.12) added grabmode parameters to specify known X/Y size of mode
  98.   (so grabmode has to do less guessing and more knowing)
  99. - getbyte() renamed to getint(). (was int anyway)
  100. - buggy calls to GMOFLG_ISSET macro expanded (only single options allowed)
  101. - awesome bug removed in ChipSetRec structure (allowed options were all wrong)
  102. - (1.1.13) bug in IBM RGB clockchip code removed (caused by transition to kHz
  103.   notation)
  104. - Preliminary support for SiS, ARK (incl ICS5342 clock chip), RealTek, NCR,
  105.   Genoa GVGA, MX and ET3000 (how could this one have slipped my attention for
  106.   so long?) chipsets.
  107. - (1.1.14) added "clockchip_x" option for icd2061a/ics9161.
  108. - added warning to Makefile about syntax change.
  109. - more grabmode tweaking... this will never end. Again some improvements for
  110.   grabbing "extended" modes.
  111. - (1.1.15) removed bug in S3 HStext debug code (garbled output).
  112. - added better error message when old FontSlect syntax is used.
  113. - timeout bug removed in wait_vsync.c (it reported a Vsync timeout, and then
  114.   got stuck anyway).
  115.  
  116.  
  117. 30 NOV 1995 - Version 1.1
  118.  
  119. - (1.0.1) removed null-pointer writing bug that caused ELF and DOS code to
  120.   segfault in DefaultMode scanning code. Thanks to "checker"!
  121. - `make newinstall' now copies old textconfig file to .orig file.
  122. - (1.0.2) updated S3 clockchip code to XFree86 3.1.2, so now IBM RGB
  123.   RAMDAC's are supported. But they don't work....
  124.   This needs more work: - check for TI302X init code
  125.                         - beta test IBM RGB, STG1703 and TI3026
  126.                         - Cirrus clockchip stuff needs testing again
  127. - set_clockchip_clock now uses kHz (as in XFREE3.1.2). This needs testing.
  128.   DANGEROUS!
  129. - removed cut/paste bug in ICS5341 clockchip MClk programming.
  130. - updated some docs (especially the INSTALL file was _old_).
  131. - added DRAM speed options for S3 cards (actually sets M-parameter, whatever
  132.   that is). This allows S3 cards to use even higher text mode clocks.
  133. - (1.0.3) Added S3 high speed text font loading. This can be enabled with 
  134.   option "S3HSText" in config file. Now S3 can do over 80 MHZ in text mode!
  135. - (1.0.4) experimental ali (Advance Logic) chipset support. Untested.
  136. - (1.0.5) sent output from font loader through pipe to print it later on S3
  137.   cards with HSFont enabled: no more corrupted screens.
  138. - better checking  if HSText is allowed.
  139. - added horizontal wrap detection to grabmode.
  140. - (1.0.6) changed set_V_timings to avoid null sync width in vertical total
  141.   double mode.
  142. - added bordercolor option. Nobody needs it, but I wanted to do something
  143.   simple for a change...
  144. - due to popular (?) demand: programmable underline position. 
  145. - bug in resize_active_vts() tried to resize /dev/tty0../dev/tty15 instead
  146.   of /dev/tty1../dev/tty16 (some ELF distributions don't have /dev/tty0)
  147. - added OTI67/77/78 chipset support. Easy. Untested.
  148. - (1.0.7) fixed bug in IBM RGB RAMDAC code (had to multiply freq's by 1000)
  149. - added AL2101 chipset (very close to generic ALI chipset).
  150. - generalized and expanded number-of-clocks checking code
  151. - more popular demand (some italian guy...): shorthand "stm" for SVGATextMode.
  152. - status line of STM now adds "D" when doublescan mode is selected
  153. - resize_active_vts() bug fix introduced another bug. Replaced that one with
  154.   another one...
  155. - unlocked IBM RGB clock selection (locked by XFREE code), so soft reboot can
  156.   restore screen. Doesn't seem to work...
  157. - (1.0.8) cleaned up VT_RESIZE code a little. STM now tries to free some more
  158.   memory (*1, *2 and *3) if VT_RESIZE fails. More chance of success.
  159. - added check for 16k chars per screen in parse_modeline.c. 
  160. - added mention of MClk programming in manuals. 
  161. - doc/REPORT file removed. Seems not very useful anymore. Anyone disagree?
  162. - always reset ClockDiv2 bit when option not defined. This caused trouble
  163.   on systems where this option was disabled after switching to such a mode.
  164.  
  165.  
  166. 13 OCT 1995 - Version 1.0     Friday the 13th release!
  167.                               I hope you aren't superstitious!
  168.                               
  169. - added MClk programming to ClockProg. Should increase text mode max clock
  170.   (and graphics speed...). BUT: VERY DANGEROUS... (hard crash).
  171. - killed outw() argument order bug in Video7 clock setting code.
  172. - a bunch of small changes (mainly to Makefile) by Ron Sommeling
  173.   <sommel@sci.kun.nl>
  174. - moved clock setting block from SVGAtextMode.c (and ClockProg.c) into
  175.   setclock.c.
  176. - split Run_extern_Prog into separate .c file
  177. - MClk programming on some clockchips now supported (higher text mode clocks
  178.   possible).
  179. - merged clockprobe and grabmode into one program
  180. - split up font parsing into parse_font.c
  181. - removed some obsolete code from WDC90CXX chipset unlocking routine.
  182. - safe_wait_vsync created in wait_vsync.c
  183. - used safe_wait_vsync and SCREEN_OFF before programming VGA chip (avoiding
  184.   font corruption and system hangs -- hopefully) in ClockProg and STM
  185. - ClockProg can use different config file (/etc/ClockConfig) if it exists
  186.   (will use /etc/TextConfig otherwise)
  187. - PERROR now does SCREEN_ON before exiting
  188. - moved some compile-time options from severeal .h files to the Makefile
  189. - changed dependency checking/making in Makefiles (now uses .depend files)
  190. - investigated "unstable Cirrus Clock" problem. Resulted in
  191.   contrib/Cirrus_ClockChip.patch
  192. - split setclock.c into setclock.c, std_clock.c & clockchip.c  
  193. - max WDC90C3X clock now 50 MHZ (90 was way too much. I should have known
  194.   only Tseng could do this...)
  195. - option definitions moved from confdefs.h to parse_opt.h  
  196. - added "SyncDisks" option: does a sync() before going to the hardware.
  197. - set/getpalette can input/output in hex now
  198. - DO_SYNCRESET option added to Makefile: this does a synchronous reset of
  199.   the timing sequencer before changing the pixel clocks. Was always on by
  200.   default, but crashed some ET4000's. now off be default.
  201. - changed patch to S3gendac.c code for ET4000 gendac so that pixel
  202.   multiplexing becomes possible (min_n2 changed from 0 to 1)
  203. - changed most Outb_xxxx functions to use outw() instead of 2 outb()'s
  204. - setpalette can now program a "standard" palette without external
  205.   parameters or input. This also uncovered a bug in the built-in standard
  206.   palette of set80 (data was interpreted as octal...Yuck!)
  207. - "browse" option added to contrib/scripts/STMmenu  
  208. - grabmode (in fact modedata.c) has some intelligence built-in to properly
  209.   display modes with 1024 lines (1280x1024 modes were shown wrong, because
  210.   they used chipset-specific registers)
  211. - probeclocks.c started: XFree86-like clock probe. Not finished yet...
  212. - grabmode _should_ now properly detect ALL CGA-emulated modes (320x200, etc),
  213.   even packed pixel modes. Documentation updated/expanded.
  214. - attempt at supporting interlaced modes (for S3 only) Do NOT try this at
  215.   home! It doesn't work yet (_can_ it work for text modes ???).
  216. - cleaned up TODO file (who cares...)
  217. - most "Get_..." functions are now inline. Probably not very useful.
  218. - underline position is now also programmed. Some people complained about
  219.   missing underline, or strike-through instead of underlining when using
  220.   STM. They were right, of course.
  221.   Also added "NoUnderline option".
  222. - Added "DoubleScan" attribute for text mode config lines. Anybody needs a
  223.   64-pixel high font?
  224. - corrected little bug in START_HBLANK code (set_ and get_): was wrong by 1
  225.   char. Need this for correct blanking programming.
  226. - Started correct blanking programming: 1 char before and one after the
  227.   active display. This is useful for those who want a nice colored border
  228.   around their screen using the overscan color register. If the blanking is
  229.   not programmed correctly (as in X), changing the overscan register makes
  230.   ALL screen colors change.
  231.   This was a VERY nasty thing to do. It seems like most VGA programs don't
  232.   bother, and set it to the same position as the sync. It's not easy to get
  233.   it right.
  234. - Needed to change the same two a little more for correct blanking
  235.   programming: it seems like both start and end of HBLK must be decremented
  236.   by 1 before using them. This doesn't show up in any VGA textbook
  237.   (Ferraro,...), but the actual display shows otherwise.
  238. - added font dumper/undumper programs in contrib/changefont.
  239. - disabled S3's "high speed text display font fetch mode" until we know what
  240.   it does and how to use it. This caused trouble on S3 911 etc.
  241. - added S3 high speed text font writing code. Experimental, and non-functional!
  242. - more tweaking on grabmode to make it mode reliable when detecting CGA modes
  243.   and 16/24 bit modes
  244. - manual file for grabmode written. Finally.
  245. - first shot at DOS version of STM, thanks to invaluable help from Stephen
  246.   Lee. (Well, in fact, he did all the work). The most important changes are
  247.   the ttyresize.c file (DOS resizing code), and some include file changes to
  248.   enable DOS compilation.
  249. - Removed argv[0] printing in debug output. Useless, and messy.
  250. - All SVGATextMode code now compiles under DJGPP 2.0 in DOS. I didn't say it
  251.   all works perfectly! This is unsupported work. 
  252. - added ioctl(</dev/console>, KDSETMODE, KD_TEXT) to SVGATextMode.c as well
  253.   (was only in set80.c). Better textmode restoration ???
  254. - more MAN-file updating. 
  255. - STM now always does a pre-1.3.3 VT_RESIZE, and if it's a 1.3.3 or newer,
  256.   it does a VT_RESIZEX also. Maybe this avoids trouble until those kernel
  257.   guys make this a bit less obscure.
  258. - added DOSEMU chapter to doc/PROBLEMS
  259. - fixed makefile so it doesn't re-compile all stuff when binaries are in
  260.   source tree, but .o files are not.
  261. - added "backup" target to makefile
  262. - SVGATextMode is now oficially under the GPL (finally -- I read the damn thing)
  263. - final (you must be kidding...) man-file cleanup.
  264.  
  265.  
  266. 6 JULY 1995 - Version 0.9
  267.  
  268. - Added "-t" option to use a different TextConfig file (useful e.g. for the
  269.   clock probing script in contrib)
  270. - explained "character bandwidth" in doc/PROBLEMS file.
  271. - fixed bug in WDC90cXX code (clock selection bit #2 was wrongly programmed)
  272. - another bug in WDC code: registers were not unlocked: some modes only worked
  273.   after X unlocked the VGA registers.
  274. - used CirrusSetClock from XFREE package instead of previous (custom) version.
  275. - added "restore all VGA registers" option to set80. More robust, but not
  276.   perfect, since SVGA regs are not restored...
  277. - added "-m" switch. When VT_RESIZE fails due to lack of memory, it doesn't
  278.   automatically try via a 1x1 screen anymore. You need to use "-m". This is
  279.   to avoid erasing all screens unannounced.
  280. - split up README into README and INDEX.
  281. - updated binary DOS version of grabmode.exe to 0.8.4. (actually Mr
  282.   Albanowski updated it...). This needed a few changes to the code here and
  283.   there: some double colons in the Makefile (for the grabmode.exe target),
  284.   removing "optopt" for the DOS version, and changing the general [][] array
  285.   references to more specific ones.
  286. - man-files written for: SVGATextMode(8), TextConfig(5).
  287. - first attempt at a separate clock program using the XFREE clockchip code
  288.   (useful for X, where ClockProg DOES restore text mode clock, and
  289.   ClockChip doesn't). Also attempt at getting ET4000w32p with GenDAC
  290.   working.
  291. - included patches by Mr David Mosberger-Tang <davidm@cs.arizona.edu> for
  292.   Linux/Alpha. STM should now compile on Alpha systems without changing a
  293.   single byte to the sources nor the Makefile.
  294. - split up grabmode.c into grabmode.c and modedata.c. Should be useful for
  295.   scanmode, etc.
  296. - added "DAC" register set to set/getVGAreg.
  297. - patched XFREE/common_hw/S3gendac.c so ET4000W32p with ICS5341 GenDAC now
  298.   works, too.
  299. - changed clockchip code to allow clockchips for other-than-S3 chipsets.
  300. - added "DacSpeed" line + default maximum clocks for all chipsets. 
  301. - scan-mode now also takes clock limit into account.
  302. - included a patch for ET4000 W32p X-server that solves mouse-garbage
  303.   problem on PCI cards.
  304. - replaced 49 (!) misspelled words "usefull" to "useful"... That says
  305.   something about the program itself... ;-) (thanks David!). 
  306. - separated clock related config file parsing into a separate file
  307.   (parse_clock.c). To be used later in a "generic" clock program for XFREE.
  308.   Users of XFREE with a ClockChip should appreciate this (correct
  309.   restoration of textclock).
  310. - also separated parse_modeline from configfile.c into separate .c file
  311. - moved Hsync/Vsync_range parsing to main(), so it doesn't have to be done
  312.   in several places over and over. 
  313. - moved mode validation functions into validate.c
  314. - mode validation now also tests if the required clock is in the clocks
  315.   line. (useful for "scan" mode).
  316. - fixed bug in grabmode (actually bug in Get_xxx_End() functions in
  317.   vga_prg.c) that caused wrong blanking values to be displayed.
  318. - added "-c" option to grabmode: don't probe for pixel clock.
  319. - "slow clock" in grabmode is now non-fatal, 0 MHz is returned as probed
  320.   clock value
  321. - all mode parameters (either from mode line or grabmode) use same struct
  322.   for data. I think that's called "unification".
  323. - "DefaultMode" command introduced in config file
  324. - mode selection tool using dialog and the enhanced "scan" mode of STM:
  325.   STMmenu. This obsoleted the 2 previous ones "grepmodes" and
  326.   "textmodeselect".
  327. - added detection for some special features in grabmode (doublescan, ...)
  328. - implemented VT_RESIZEX from kernel version 1.3.3 and up.
  329. - also skipped tty resizing for kernels >= 1.3.3 (should be done by
  330.   VT_RESIZE now)
  331. - compilation now automatically selects to allow or disallow resizing,
  332.   through checking of availability of VT_RESIZE call.
  333. - changed ClockProg into a generic VGA clock programming tool, that can be
  334.   used either in SVGATextMode itself, or in XFREE, to support yet
  335.   unsupported clockchips in X (notably ET4000 genDAC), AND to allow for
  336.   sub-25 MHz modes in X for ALL cards (DOOM!), and not just those with a
  337.   clockchip. This will also smoothe the interaction between X and
  338.   SVGATextMode, since they then use the same clock programming code. Also
  339.   useful for Clockchip-cards in X, to allow for correct text mode clock
  340.   restoration.
  341. - passed CFLAGS from top level to XFREE sub-Makefile
  342. - workaround Cirrus Clockchip bug (unstable clock at 58 MHz --> use 57.9).
  343.  
  344.  
  345. 2 MAY 1995 - Version 0.8
  346.  
  347. - changed VT_RESIZE call to use /dev/console instead of stdin. This avoids
  348.   having to redirect stdin when running SVGATextMode remotely.
  349. - moved lower-level functions for video timings into vga_prg.c,
  350.   SVGATextMode.c now uses more higher-level functions.
  351. - removed "bug" that limited modes to max 1024 lines per screen. Now up to
  352.   2048 lines are possible. This is all a standard VGA chip can do.
  353. - made division by 2 feature an OPTION instead of a default. This should
  354.   avoid problems with not-so-standard VGA cards. Is now default DISABLED,
  355.   instead of enabled in previous versions.
  356. - Amazing... one more dead bug: now the Ti3025 clock chip code was wrong.
  357.   (it was passed the desired frequency in MHZ, and it needed KHZ).
  358.   AND the XFREE/xfree_compat.c file used the opposite definition of outb(),
  359.   so you got a segmentation fault there. Why do people use TWO different
  360.   (and completely incompatible) versions of outb() ???
  361.   But... it STILL doesn't work.
  362. - Michael Shields contributed a better function to free some RAM to avoid
  363.   VT_RESIZE from giving an "out of memory" error. This time it should work a
  364.   lot more reliably than what I had done too quickly... But still not
  365.   perfect.
  366. - he also fixed a bug that made some font sizes NOT mentionned in the font
  367.   selection table be assigned the wrong font.
  368. - changed PDEBUG, PWARNING, etc so they can be used as functions (';'
  369.   allowed at end).
  370. - added contrib/loadfont. A better alternative to setfont written by Albert
  371.   Cahalan <albert@ccs.neu.edu>
  372. - added two more register unlocking bits to S3 chipset. This COULD have
  373.   caused problems (VGA clock and 8/9 pixel wide char selection COULD be
  374.   locked from BIOS).
  375. - changed argv[0] processing of set/getVGAreg and set/getpalette so they
  376.   select between set/get function correctly.
  377. - put all tty-resizing code in a separate file (ttyresize.c).
  378. - removed the ICD2061 setting programs in the contrib directory once again.
  379.   Hopefully nobody minds.
  380. - added a "rescue" program "set80" that programs the VGA 80x25 mode, without
  381.   options or configfile. Useful for when you made a mistake using
  382.   SVGATextMode...
  383. - moved mode line parsing code from SVGATextMode.c into configfile.c. Needed
  384.   for the mode line scan function.
  385. - changed TRUE/FALSE definition, and moved it into misc.h for ALL sources.
  386.   also used boolean assignments where possible (instead of "if (...)
  387.   bool=TRUE; else bool=FALSE;").
  388. - added '-s' option to scan config file for all possible mode lines. 
  389. - added '-v' option to disable mode validation (H/V frequency checking)
  390. - changed sync checking code to allow for sync range validation in "scan" mode.
  391. - changed explicit comparing with "NULL" to implicit.
  392. - Keith Owens (kaoss@singnet.com.sg) suggested a change to make SVGATextMode
  393.   show the resulting text mode BEFORE bailing out when the syncs are out of
  394.   range.
  395. - Changed TextConfig file clock selection mechanism (again). Now you only
  396.   have to define a clocks line when it is actually NEEDED: for non-clockchip
  397.   S3 cards, cards needing a Clockprog, and all other cards except Cirrus.
  398. - Fixed a problem with the ATI MACH32 card support. Those cards seem to need
  399.   bits 2 and 3 of the clock selection word exchanged. Weird. Now at least it
  400.   works for one of them.
  401. - allowed checking of correct number of clocks in 'Clocks' line to be
  402.   switched of using #define statement in SVGATextMode.c. It seemed to bother
  403.   some people.
  404. - Command-line switch '-c' (don't program clock) produced a warning line.
  405.   This too seemed to bother some people. Now it is a debug message (only shown
  406.   when debugging is enabled).
  407. - Kris Coryn suggested doing a temporary VT_RESIZE to 1x1 if the new one
  408.   fails (because of a lack of memory) at first. This frees (almost) all of
  409.   the RAM needed for the current display, thus freeing more for a second
  410.   attempt. This is very succesfull! The only downside is that the screen gets
  411.   cleared in the process.
  412. - changed resizing code to check for correct kernel version BEFORE doing
  413.   ANYTHING. Code hopefully a lot more clean now, too. 
  414. - replaced VT_RESIZE.note with a more up-to-date screen-resizing.note.
  415. - added "-b" option to grabmode, to show the H/V-blanking registers.
  416. - changed all absolute VGA register references that were dependent on Mono
  417.   or Color VGA to vgaIOBase. If everything went right, SVGATextMode should
  418.   now also work on monochrome displays (NOT tested!).
  419. - cleaned out XFREE Makefile and xfree_compat.h so now the clock chip code
  420.   compiles cleanly. This is in anticipation of the XFREE 3.1.1 code import.
  421. - XFREE 3.1.1 clock chips now included! But if they work ...?
  422. - get/setVGAreg now also outputs in binary (useful for some bit-level
  423.   registers).
  424. - split up configuration defines from vga_prg.h (they have nothing to do
  425.   with VGA hardware) into separate confdefs.h file. This also facilitated
  426.   the use of the "other" definition of outb() from common/compiler.h for
  427.   Ti3025 code in XFREE/xfree_compat.c.
  428. - fixed bug that called random filename for ResetProg when it was not
  429.   defined.
  430.  
  431.  
  432. 27 MAR 1995 - Version 0.7
  433.  
  434. - You guessed it: I reversed the order of the HISTORY entries. Everybody
  435.   else seems to do it that way...
  436. - updated some doc files. Removed obsolete doc/VT_RESIZE.note. 
  437. - changed external clock program calling to comply with XFREE3.x method: now
  438.   takes MHz as an argument instead of kHz.
  439. - To be more compatible with the XFREE configuration, you must now ALWAYS
  440.   define a clocks line. Even when using a Cirrus card, a clock chip or an
  441.   external clock program. In these three cases, you can define ANY number of
  442.   clocks of any value on the clocks line (as long as they are within range
  443.   of what your VGA chip can handle). 
  444.   This also burries another really idiotic bug that caused the Cirrus Logic
  445.   cards to fail with the message "Internal error: No clock programming
  446.   defined. Please complain to the author...". Which is what many people did :-(
  447. - started writing the "doc/PROBLEMS" file. Contains some troubleshooting
  448.   tips, and some commonly encountered problems.
  449. - added "-x" option to set/getVGAreg, producing pipeable hex output.
  450. - removed tiny bug that produced incorrect error report when combining
  451.   command-line switches in one "-abcd..." line, with an incorrect one in
  452.   between. All programs had this bug.
  453. - changed Makefiles (again). XFREE/libcommon_hw.a is now NOT deleted in
  454.   distribution, so people without an X installation CAN recompile without
  455.   missing header file errors. As long as they don't do a "make mrproper"..
  456. - quick hack by Stephen Lee: textmodeselect. A dialog-based mode selector.
  457. - !!!maybe, just maybe, the infamous ICD2061 programming problem is HISTORY!
  458.   it used to give a segmentation fault, due to its reading of IO address
  459.   0x200, which wasn't given IO permissions by SVGATextMode...
  460. - Reuben Sumner provided a neat function to do AUTOMATIC VT resizing. So
  461.   now you don't need the "terminals" line anymore: this function finds out
  462.   by itself what VT's are active, and resizes them.
  463.   This has the added advantage that putting tty7 and tty8 in the "Terminals"
  464.   line doesn't activate them (which TIOCSWINSZ does), so X cannot use them,
  465.   and fails when starting up, telling you it cannot open /dev/tty9 (when you
  466.   have 8 VT's defined).
  467.   Note that this function will be overridden if a "Terminals" line is
  468.   specified. This will allow you to override the "intelligent" behaviour of
  469.   SVGATextMode, and define which VT's you want resized (and which not).
  470. - Split up the huge "main()" in SVGATextMode.c into smaller functions.   
  471. - changed NO_VT_RESIZE into ALLOW_RESIZE. This looks less obfuscated.
  472. - restructured terminal resizing code completely, using more functions.
  473. - changed "open" mode for terminal devices from read/write to write only.
  474.   This avoids a permission problem on most machines when running SUID.
  475. - changed check_bounds_realtime(), so it now allows for spaces in the
  476.   frequency strings (suggested by Stefan Dalibor).
  477. - put the "diamond" clock program back in. I removed it a bit to early: the
  478.   ICD2061a clock code didn't work yet. Maybe now...
  479. - started changing grabmode to make it correctly detect CGA-emulated modes,
  480.   and Hi/TrueColor modes. Not there yet.
  481. - VGA IO permission stuff facelifted.
  482.   
  483.  
  484. 16 MAR 1995 - Version 0.6
  485.  
  486. - Added support for Video7 (Headland Technologies) chipset.
  487. - changed calling of reset-program to only run when screen actually changes
  488.   size.
  489. - more general path option fetching from config file (in preparation for
  490.   FontProg et al)
  491. - changed option stuff (code readability improvement)
  492. - fixed a bug in OPT_SWAP_HIBIT for WDC cards.
  493. - !!! added automatic font loading. Major feature improvement.
  494. - fixed a stupid bug that produced an error when using ClockChip ICD2061A. 
  495. - fixed ANOTHER stupid bug that found an incomplete clockchip line when
  496.   there was none defined, after having found a ClockProg line. I must have
  497.   had a bad day there...
  498. - added flags: -r : don't run ResetProg
  499.                -f : don't run FontProg
  500.                -c : don't program clock (but do the rest)
  501. - cleaned up message printing code. Less overhead now.
  502. - programmable cursor position and size: lets you define what the cursor
  503.   looks like.
  504. - added 'HorizSync', 'VertRefresh' parameters to config file, to define
  505.   monitor's limits, and avoid loading a mode that the monitor cannot handle.
  506.   Same syntax as in XF86Config.
  507.  
  508.  
  509. 03 MAR 1995 - Version 0.5
  510.  
  511. - Made clockprobe shut up about interlacing. Was wrong anyway. adapted doc
  512.   accordingly
  513. - !!! added mode grabber, which outputs a TextConfig (or XF86Config)
  514.   compatible line describing the currently used text mode.
  515.   !!! DOS port of grabmode by Kenneth Albanowski. Now you can grab a DOS
  516.   text mode and import it into SVGATextMode. (grabmode.exe included)
  517. - removed small bug in set/getVGAreg (setVGAreg didn't work when called with
  518.   a path)
  519. - added doc/README.ET4000.AltClockSelect. A technical description of a
  520.   rather common problem with ET4000's: the "hibit" option and the different
  521.   methods of clock selection.
  522. - added Sigma Legend (ET4000) option.
  523. - added Cirrus DRAM speed options (SLOW_DRAM, MED_DRAM, FAST_DRAM, XFAST_DRAM)
  524. - continued XFREE code importing effort. Now all kinds of clock chips on S3
  525.   boards could possibly work. Needs testing though.
  526.   Produces lots of warnings during compilation, so it's not sure it will work.
  527.   Will somebody test this, please? S3 Gendac tested: OK
  528. - added "ResetProg" line to TextConfig. This calls a program or a script
  529.   after SVGATextMode ended succesfully.
  530. - fixed obscure problem with ATI code (needed at least for ATI VGA Wonder V5)
  531.  
  532.  
  533. 19 FEB 1995 - Version 0.4
  534.  
  535. This time, lots of user feedback resulted in most of the new features.
  536. Thanks to all those who contributed!
  537. - Increased sync widths in many default TextConfig modes, after TONS of
  538.   complaints about many modes just not working. This should fix most
  539.   problems (but not all...)
  540. - added a clock probing program "clockprobe". Useful for debugging on
  541.   "remote" video cards (i.e. those YOU have, but I don't). Used some fancy
  542.   stuff in there. Check the documentation!
  543. - short docs for getpalette, setpalette, getVGAreg, setVGAreg, and
  544.   clockprobe added.
  545. - added some more user-contributed text modes. If this goes on, the
  546.   TextConfig file will be a MegaByte within a few years...
  547. - added (user contributed) Video 7 mercury external clock program.
  548. - fixed bug in setpalette code (getpalette was wrong).
  549. - now SVGATextMode uses the last matching textmode line, instead of the
  550.   first (suggested by Kenneth Albanowski. Thanks). This gives YOUR patched
  551.   lines precedence over the original ones, if your lines are at the end of
  552.   the TextConfig file.
  553. - changed external clock program calling to comply with XFREE3.1 method
  554. - made option parsing more generic, so now adding options for all cards is
  555.   easier.
  556. - added option "ET4000_AltClockSel" for those ET4000 which won't work with
  557.   the normal clock selection code.
  558. - "swap_hibit" option for WDC cards added (as in XFREE). This actuall swaps
  559.   bit 2 (not 3), so the name is rather misleading...
  560. - added automatic sync polarity selection. Deleted most sync polarities from
  561.   default text modes in TextConfig (auto polarity should get most right).
  562. - first attempt at using some XFREE code. This has been suggested by myself
  563.   and many others. It's a good idea, but probably not that simple. Let's
  564.   see...
  565.   Nothing works yet, but it'll come, one day.
  566. - Put VT_RESIZE before VGA programming code instead of after, and added
  567.   malloc() to get some more free memory (avoiding "out of memory" error).
  568. - !!! Now does terminal resizing automatically, using the terminals defined
  569.   in a "Terminals" line in the TextConfig file. All these terminals get the
  570.   equivalent of an "stty rows ... cols ..." sent to them when SVGATextMode
  571.   is run. All programs that support the SIGWINCH signal (more/less, joe,
  572.   emacs, ...) redraw their screen automatically into the new size. This is a
  573.   really nice feature!
  574. - and finally: SVGATexMode now checks for the kernel version, and if it's
  575.   older than 1.1.54, it will not allow screen resizing. This seemed to be a
  576.   major problem for some people.
  577.   This will also make SVGATextMode MUCH less dangerous to use.
  578.  
  579.  
  580. 31 JAN 1995 - Version 0.3
  581.  
  582. - more cosmetics. Especially changing small functions into #defines. Is this
  583.   wise???
  584. - added setpalette and getpalette, to set/get the color palette. Completely
  585.   useless, but is was lying around somewhere else, and this seemed a better
  586.   place for it to reside.
  587. - ATI support tested and changed to make use of ALL 128 clocks available!
  588. - multiple clocks lines supported.
  589. - split up README into separate parts in doc directory. It was beginning to
  590.   get bloated.
  591. - added conditional compilation for older kernels (#define NO_VT_RESIZE)
  592. - Still 867 bugs undiscovered...
  593.  
  594.  
  595. 23 JAN 1995 - Version 0.2
  596.  
  597. - major cosmetic changes. And more will follow...
  598. - more modular code ( = more .c files)
  599. - added options (-n, -d and -h)
  600. - changed define DEBUG into an option. Executable will be always bigger, but
  601.   who cares...
  602. - added "setVGAreg" and "getVGAreg" for hacking purposes (formerly not
  603.   distributed, but written as lots of separate programs by Wouter Gadeyne)
  604. - added support for Western Digital and ATI cards (but VERY much untested ...)
  605. - removed 8/9 character switching bug.
  606.  
  607.  
  608. 10 Jan 1995 - Version 0.1   First release
  609.  
  610. - Xconfig-like configuration
  611. - S3, Et4000, Trident and Cirrus Logic support. 
  612.   each tested on just ONE of those cards...
  613. - probably a TON of bugs.
  614.  
  615.  
  616.